Delivery of quality real-time data streams has been and continues to be an important concern in the computer environment. Real-time data streams include, for instance, video, audio and multimedia data streams, to name a few. Currently, two approaches are used to deliver real-time data streams: configuration control and high dispatch priority, each of which is described below.
In the configuration control approach, a server is dedicated to the delivery of real-time data streams. In particular, the server is configured with sufficient capacity to deliver real-time data streams at a given rate. Since the server is dedicated to the delivery of real-time data streams, the real-time streams monopolize the system resources leaving very little, if anything at all, for other types of work.
In the high dispatch priority approach, the real-time applications are run at a very high dispatch priority. This technique need not be run on a dedicated system; however, by running the real-time applications at a very high priority, again, there is no control or guarantee that other work in the system will receive sufficient resources to execute.
Thus, a need exists for a technique that delivers real-time data streams smoothly and uninterrupted, while providing a desired amount of the processor resource for other work to be concurrently executed on the system. A further need exists for a management technique that allows a limit to be placed on the amount of resource allocated to real-time data streams, such that a selected amount of the resource remains available for non-real-time work. A yet further need exists for a mechanism that can choose among a plurality of systems the system that best fits the needs of the real-time application and the other non-real-time work of the system.